#ifndef MOTIONCONTROL_H_
#define MOTIONCONTROL_H_

/* Includes ------------------------------------------------------------------*/
#include "stm32f10x_conf.h"
#include "Coordinate.h"

/* Exported types ------------------------------------------------------------*/
typedef enum
{
    MOTIONCONTROL_Setup,
    MOTIONCONTROL_Configuring,
    MOTIONCONTROL_Running,
    MOTIONCONTROL_Alarm

} MotionControl_State;

/* Exported function prototypes ----------------------------------------------*/

// MotionControl_Init()
// --------------------
// Initialize the motion control module.
extern void MotionControl_Init();

// MotionControl_SetState()
// ------------------------
// Set the current state of the robot.
extern void MotionControl_SetState(MotionControl_State state);

// MotionControl_OnSecond()
// ------------------------
// Handle the one second interrupt.
extern void MotionControl_OnSecond(uint16_t seconds);

// MotionControl_OnAlarm()
// -----------------------
// Handle the alarm interrupt.
extern void MotionControl_OnAlarm();

#endif /* MOTIONCONTROL_H_ */
